package com.h.order.controller;

import com.h.order.constants.Constants;
import com.h.order.modle.OrderInfo;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Random;
import java.util.UUID;

@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    // 订单系统的发送信息
    @RequestMapping("/createOrder")
    public String createOrder() {
        // 这里一般需要业务处理，如参数校验, 数据库保存等, 业务代码省略
        // 发送消息
        // 使用内置的交换机
        String orderId = UUID.randomUUID().toString();
        rabbitTemplate.convertAndSend("", Constants.ORDER_QUEUE, "订单信息, 订单ID:"+orderId);
        return "下单成功";
    }

    @RequestMapping("/createOrderInfo")
    public String createOrderInfo() {
        OrderInfo orderInfo = new OrderInfo();
        orderInfo.setOrderId(UUID.randomUUID().toString());
        orderInfo.setName("商品"+ new Random().nextInt(100));
        // 这里发送的是 orderInfo 对象，所以这里需要进行序列化，
        // 在配置信息中 重写rabbitTemplate(ConnectionFactory connectionFactory)
        rabbitTemplate.convertAndSend("", Constants.ORDER_QUEUE, orderInfo);
        return "下单成功";
    }
}
